#
#  Copyright (c) 2021 Futurewei Technologies, Inc.
#
#  clang2mpl is licensed under Mulan PSL v2.
#  You can use this software according to the terms and conditions of the Mulan
#  PSL v2. You may obtain a copy of Mulan PSL v2 at:
#
#      http://license.coscl.org.cn/MulanPSL2
#
#  THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY
#  KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
#  NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. See the
#  Mulan PSL v2 for more details.
#

ifndef MAPLE_ROOT
$(error MAPLE_ROOT is not set)
endif

ifndef MAPLE_BUILD_TYPE
$(error MAPLE_BUILD_TYPE is not set)
endif

ifndef MAPLE_EXECUTE_BIN
$(error MAPLE_EXECUTE_BIN is not set)
endif

ifeq ($(MAPLE_DEBUG),0)
  BUILD_TYPE :=
else
  BUILD_TYPE := Debug
endif

.PHONY: test clean

SOURCES := $(wildcard *.cpp *.h)

build${BUILD_TYPE}/clang2mpl: $(SOURCES)
	make -C build${BUILD_TYPE}

setup: CMakeLists.txt
	mkdir -p build${BUILD_TYPE}
	cd build${BUILD_TYPE} && cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
		-DCMAKE_INSTALL_PREFIX=${MAPLE_BUILD_OUTPUT} -G "Unix Makefiles" ../

install: build${BUILD_TYPE}/clang2mpl
	make -C build${BUILD_TYPE} install

test:
	make -C test test

clean:
	rm -rf build${BUILD_TYPE}
